// run: $exec < input
#include <iostream>
#include <vector>
#include <string>

std::vector<std::string> da(8);
std::vector<std::string> map{
"  XXXX     XX     XXXX    XXXX      XX    XXXXX    XXXX  XXXXXX   XXXX    XXXX  ",
" XX  XX  XXXX    XX  XX  X   XX    XXX    XX      XX     X   XX  XX  XX  XX  XX ",
" XX  XX    XX    XX  XX      XX    XXX    XXXX   XX          XX  XX  XX  XX  XX ",
" XX  XX    XX        XX    XXX    X XX    X  XX  XXXXX      XX    XXXX   XX  XX ",
" XX  XX    XX       XX       XX  X  XX       XX  XX  XX     XX   XX  XX   XXXXX ",
" XX  XX    XX      XX        XX  XXXXXX      XX  XX  XX     XX   XX  XX      XX ",
" XX  XX    XX     XX     X   XX     XX   X   XX  XX  XX    XX    XX  XX     XX  ",
"  XXXX   XXXXXX  XXXXXX   XXXX    XXXXX   XXXX    XXXX     XX     XXXX   XXXX   ",
							};

std::vector<std::string> ans(8);

int get(int x)
{
	for (int i = 0; i < 10; i++) {
		bool ok = true;
		for (int j = 0; j < 8; j++) {
			for (int k = 0; k < 8; k++)
				if (da[j][x * 8 + k] != map[j][i * 8 + k]) { ok = false; break; }
			if (!ok) break;
		}
		if (ok) return i;
	}
	return -1;
}

void print_ans()
{
	for (int i = 0; i < 8; i++) {
		for (int j = 0; j < (int)ans[i].size(); j++)
			std::cout << ans[i][j];
		std::cout << '\n';
	}
}

void print(int x, int t)
{
	for (int j = 0; j < 8; j++)
		for (int k = 0; k < 8; k++)
			ans[j][t * 8 + k] = map[j][x * 8 + k];
}
int main()
{
	std::ios::sync_with_stdio(false);
	for (int i = 0; i < 8; i++)
		std::getline(std::cin, da[i]);
	for (int i = 0; i < 8; i++)
		if (da[i].size() < 16) da[i] += std::string(16 - da[i].size(), ' ');
	int t1 = get(0) + get(1);
//	std::cout << get(0) << ' ' << get(1) << '\n';
	if (t1 < 10) {
		for (int i = 0; i < 8; i++) ans[i].resize(8);
		print(t1, 0);
		print_ans();
	} else {
		for (int i = 0; i < 8; i++) ans[i].resize(16);
		print(t1 / 10, 0);
		print(t1 % 10, 1);
		print_ans();
	}
}

